package com.zyong.design.pattern.visitor.case3;

import java.util.ArrayList;
import java.util.List;

/**
 * @program: zyong-design-pattern
 * @ClassName: ShapeCollection
 * @author: zyong
 * @create: 2024-03-30 01:11
 */
public class ShapeCollection {
    private final List<Element> elements = new ArrayList<>();

    /**
     * 添加数据结构
     * @param element 数据结构
     */
    public void addElement(Element element) {
        elements.add(element);
    }

    /**
     * 删除数据结构
     * @param element 数据结构
     */
    public void removeElement(Element element) {
        elements.remove(element);
    }

    /**
     * 对数据结构 进行 数据操作
     * @param visitor 访问者
     */
    public void accept(Visitor visitor) {
        for (Element element : elements) {
            element.accept(visitor);
        }
    }
}
